﻿using System;
using System.Text;
using System.Threading;

//自定义命名空间
using DreamCube.Framework.Utilities.Remoting;

namespace BGN.Common.Remoting
{
    /// <summary>
    /// 远程访问对象
    /// </summary>
    public class Msg : BasicObject
    {
        public event Action<SisenMESS_Interface.SisenSendEventArgs> SendMsgToClient;

        /// <summary>
        /// 发送电脑短信  可以做一个消息缓冲区
        /// </summary>
        /// <param name="message"></param>
        /// <param name="receivers">接收人，如果包含多个人，则以分号隔开即可</param>
        /// <param name="sender"></param>
        public void SendMsg(String message, String receivers, String sender)
        {
            if (String.IsNullOrEmpty(message) || String.IsNullOrEmpty(receivers)) return;
            String[] userNames = receivers.Split(';');

            for (Int32 i = 0; i < userNames.Length; i++)
            {
                SisenMESS_Interface.SisenSendEventArgs se = new SisenMESS_Interface.SisenSendEventArgs();
                se.IsMsg = false;//（true：做为布谷鸟的消息进行发送，false：做为标准的插件通讯方式进行发送(推荐)）
                se.SenderID = sender;
                se.ToUserID = userNames[i];//接收人的用户名
                se.SendToType = SisenMESS_Interface.SisenSendtoType.SendToUser;
                se.SendBytes = Encoding.UTF8.GetBytes(message);//要发送的数据内容.（如果做为布谷鸟的消息发送，那么这里的Byte[]只能是文字，以Encoding.Utf8.GetBytes()的方式得到,如果是插件通讯，那么这里可以随意组织。）
                if (SendMsgToClient != null) SendMsgToClient(se);
            }
        }
    }
}
